﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CMS_GYM.Interface
{
    public partial class frmLoaiKhachHangMoi : frmTemplete1
    {
        clsLoaiKhachHangBUS LoaiKHBUS = new clsLoaiKhachHangBUS();
        bool InsertFlag = false;
        int IDLoaiKH;

        #region Initials
        public frmLoaiKhachHangMoi()
        {
            InitializeComponent();
            lblTitle.Text = "LOẠI KHÁCH HÀNG";
            uct_Reset.Reset.Click += new EventHandler(btn_Reset_Click);
            uct_Save.Save.Click += new EventHandler(btn_Save_Click);
            uct_Delete.Delete.Click += new EventHandler(btn_Delete_Click);
            uct_Refresh.Refresh.Click += new EventHandler(btn_Refresh_Click);
            InsertFlag = false;
            LoadData();
        }
        #endregion

        #region Functions

        private void SetPermission()
        {
            uct_Reset.Enabled = clsUser.LayThongTinPhanQuyen("LoaiKhachHang").ChucNang.Them;
            uct_Save.Enabled = clsUser.LayThongTinPhanQuyen("LoaiKhachHang").ChucNang.Sua;
            uct_Delete.Enabled = clsUser.LayThongTinPhanQuyen("LoaiKhachHang").ChucNang.Xoa;
        }

        #region LoadData()
        public void LoadData()
        {
            try
            {
                dtg_Data.Rows.Clear();
                clsLoaiKhachHangBUS LoaiKHBUS = new clsLoaiKhachHangBUS();
                DataTable dt = LoaiKHBUS.LayBang();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dtg_Data.Rows.Add(new object[] {dt.Rows[i]["LoaiKhachHangId"], dt.Rows[i]["MaLoaiKhachHang"], 
                        dt.Rows[i]["TenLoaiKhachHang"], dt.Rows[i]["MoTa"]});
                }
            }
            catch { }
        }
        #endregion

        #region ClearData()
        public void ClearData()
        {
            txtID.Text = string.Empty;
            txtMaLoaiKhachHang.Text = string.Empty;
            txtMoTa.Text = string.Empty;
            txtTenLoaiKhachHang.Text = string.Empty;
        }
        #endregion

        #region FillData(clsLoaiKhachHangDTO KM)
        public void FillData(clsLoaiKhachHangDTO KM)
        {
            txtMaLoaiKhachHang.Text = KM.MaLoaiKhachHang;
            txtTenLoaiKhachHang.Text = KM.TenLoaiKhachHang;
            txtID.Text = KM.LoaiKhachHangId.ToString();
            txtMoTa.Text = KM.MoTa;
        }
        #endregion

        public void LayThongTinLoaiKhachHang(int LoaiKhachHangId)
        {
            try
            {
                clsLoaiKhachHangDTO LoaiKH = LoaiKHBUS.LayThongTinLoaiKhachHang(LoaiKhachHangId);
                FillData(LoaiKH);
            }
            catch { }
        }
        #endregion

        #region Events

        #region btn_Reset_Click(object sender, EventArgs e)
        private void btn_Reset_Click(object sender, EventArgs e)
        {
            ClearData();
            txtMaLoaiKhachHang.Focus();
            InsertFlag = true;
        }
        #endregion

        #region btn_Save_Click(object sender, EventArgs e)
        private void btn_Save_Click(object sender, EventArgs e)
        {
            if (InsertFlag)
            {
                if (MessageBox.Show("Xác nhận thêm dữ liệu?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                    return;
                if (txtMaLoaiKhachHang.Text == string.Empty || txtTenLoaiKhachHang.Text == string.Empty)
                {
                    MessageBox.Show("Kiểm tra dữ liệu nhập vào", "Thông báo");
                    return;
                }
                clsLoaiKhachHangDTO LoaiKHDTO = new clsLoaiKhachHangDTO();
                LoaiKHDTO.LoaiKhachHangId = IDLoaiKH;
                LoaiKHDTO.MaLoaiKhachHang = txtMaLoaiKhachHang.Text;
                LoaiKHDTO.TenLoaiKhachHang = txtTenLoaiKhachHang.Text;
                LoaiKHDTO.MoTa = txtMoTa.Text;

                int i = LoaiKHBUS.Them(LoaiKHDTO);
                if (i == 1)
                {
                    MessageBox.Show("Thêm dữ liệu thành công", "Thông báo");
                    LoadData();
                    InsertFlag = false;
                }
                else
                    MessageBox.Show("Lỗi thêm dữ liệu", "Thông báo");
                InsertFlag = false;
                return;
            }
            if (IDLoaiKH == 0) return;
            if (MessageBox.Show("Xác nhận cập nhật dữ liệu?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                clsLoaiKhachHangDTO LoaiKhachHang = new clsLoaiKhachHangDTO();
                LoaiKhachHang.LoaiKhachHangId = IDLoaiKH;
                LoaiKhachHang.MaLoaiKhachHang = txtMaLoaiKhachHang.Text;
                LoaiKhachHang.MoTa = txtMoTa.Text;
                LoaiKhachHang.TenLoaiKhachHang = txtTenLoaiKhachHang.Text;

                int i = LoaiKHBUS.Sua(LoaiKhachHang);
                if (i == 1)
                {
                    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo");
                }
                else
                    MessageBox.Show("Lỗi cập nhật dữ liệu", "Thông báo");
                LoadData();
            }
        }
        #endregion

        #region btn_Delete_Click(object sender, EventArgs e)
        private void btn_Delete_Click(object sender, EventArgs e)
        {
            if (IDLoaiKH == 0) return;
            if (MessageBox.Show("Xác nhận xóa dữ liệu?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                int i = LoaiKHBUS.Xoa(IDLoaiKH);
                if (i == 1)
                {
                    MessageBox.Show("Xóa dữ liệu thành công", "Thông báo");
                }
                else
                    MessageBox.Show("Lỗi xóa dữ liệu", "Thông báo");
                LoadData();
            }
        }
        #endregion

        #region btn_Refresh_Click(object sender, EventArgs e)
        private void btn_Refresh_Click(object sender, EventArgs e)
        {
            LoadData();
        }
        #endregion

        #region dtg_Data_RowEnter(object sender, DataGridViewCellEventArgs e)
        private void dtg_Data_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                IDLoaiKH = int.Parse(dtg_Data.SelectedRows[0].Cells["LoaiKhachHangId"].Value.ToString());
                LayThongTinLoaiKhachHang(int.Parse(dtg_Data.SelectedRows[0].Cells["LoaiKhachHangId"].Value.ToString()));
            }
            catch { }
        }
        #endregion

        private void frmLoaiKhachHangMoi_Load(object sender, EventArgs e)
        {
            try
            {
                SetPermission();
            }
            catch { }
        }

        #endregion
    }
}
